In recent years, while miniaturizing of NAND-type flash memories is in progress, interference between elements in a data write operation has become serious. That is, when data is written in a NAND type flash memory, a write pass voltage is applied to the gates of non-selected memory cells. The write pass voltage is a voltage that sets the non-selected memory cells to an ON state, but does not change a threshold voltage thereof. In contrast, a program voltage that is higher than the write pass voltage is applied to the gate of a selected memory cell that is a subject to writing. This changes the threshold voltage of the selected memory cell.
However, due to inter-element interference between adjacent memory cells caused by progress in miniaturization, there is an increasing possibility that the threshold voltage of the adjacent memory cells changes.